home *** CD-ROM | disk | FTP | other *** search
- package javax.swing;
-
- import java.io.Serializable;
- import java.util.Enumeration;
- import java.util.Hashtable;
-
- class AbstractAction$ArrayTable implements Cloneable, Serializable {
- // $FF: synthetic field
- private final AbstractAction this$0;
- private Object table;
- private static final int ARRAY_BOUNDARY = 8;
-
- AbstractAction$ArrayTable(AbstractAction var1) {
- this.this$0 = var1;
- this.table = null;
- }
-
- public synchronized Object clone() {
- AbstractAction$ArrayTable var1 = new AbstractAction$ArrayTable(this.this$0);
- if (this.isArray()) {
- Object[] var2 = this.table;
-
- for(int var3 = 0; var3 < var2.length - 1; var3 += 2) {
- var1.put(var2[var3], var2[var3 + 1]);
- }
- } else {
- Hashtable var5 = (Hashtable)this.table;
- Enumeration var6 = var5.keys();
-
- while(var6.hasMoreElements()) {
- Object var4 = var6.nextElement();
- var1.put(var4, var5.get(var4));
- }
- }
-
- return var1;
- }
-
- public boolean containsKey(Object var1) {
- boolean var2 = false;
- if (this.table != null) {
- if (this.isArray()) {
- Object[] var3 = this.table;
-
- for(int var4 = 0; var4 < var3.length - 1; var4 += 2) {
- if (var3[var4].equals(var1)) {
- var2 = true;
- break;
- }
- }
- } else {
- var2 = ((Hashtable)this.table).containsKey(var1);
- }
- }
-
- return var2;
- }
-
- public Object get(Object var1) {
- Object var2 = null;
- if (this.table != null) {
- if (this.isArray()) {
- Object[] var3 = this.table;
-
- for(int var4 = 0; var4 < var3.length - 1; var4 += 2) {
- if (var3[var4].equals(var1)) {
- var2 = var3[var4 + 1];
- break;
- }
- }
- } else {
- var2 = ((Hashtable)this.table).get(var1);
- }
- }
-
- return var2;
- }
-
- private void grow() {
- Object[] var1 = this.table;
- Hashtable var2 = new Hashtable(var1.length / 2);
-
- for(int var3 = 0; var3 < var1.length; var3 += 2) {
- var2.put(var1[var3], var1[var3 + 1]);
- }
-
- this.table = var2;
- }
-
- private boolean isArray() {
- return this.table instanceof Object[];
- }
-
- public synchronized void put(Object var1, Object var2) {
- if (this.table == null) {
- this.table = new Object[]{var1, var2};
- } else {
- int var3 = this.size();
- if (var3 < 8) {
- if (this.containsKey(var1)) {
- Object[] var4 = this.table;
-
- for(int var5 = 0; var5 < var4.length - 1; var5 += 2) {
- if (var4[var5].equals(var1)) {
- var4[var5 + 1] = var2;
- break;
- }
- }
- } else {
- Object[] var7 = this.table;
- int var8 = var7.length;
- Object[] var6 = new Object[var8 + 2];
- System.arraycopy(var7, 0, var6, 0, var8);
- var6[var8] = var1;
- var6[var8 + 1] = var2;
- this.table = var6;
- }
- } else {
- if (var3 == 8 && this.isArray()) {
- this.grow();
- }
-
- ((Hashtable)this.table).put(var1, var2);
- }
- }
-
- }
-
- public synchronized Object remove(Object var1) {
- Object var2 = null;
- if (var1 == null) {
- return null;
- } else {
- if (this.table != null) {
- if (!this.isArray()) {
- var2 = ((Hashtable)this.table).remove(var1);
- } else {
- int var3 = -1;
- Object[] var4 = this.table;
-
- for(int var5 = var4.length - 2; var5 >= 0; var5 -= 2) {
- if (var4[var5].equals(var1)) {
- var3 = var5;
- var2 = var4[var5 + 1];
- break;
- }
- }
-
- if (var3 != -1) {
- Object[] var6 = new Object[var4.length - 2];
- System.arraycopy(var4, 0, var6, 0, var3);
- if (var3 < var6.length) {
- System.arraycopy(var4, var3 + 2, var6, var3, var6.length - var3);
- }
-
- this.table = var6.length == 0 ? null : var6;
- }
- }
-
- if (this.size() == 7 && !this.isArray()) {
- this.shrink();
- }
- }
-
- return var2;
- }
- }
-
- private void shrink() {
- Hashtable var1 = (Hashtable)this.table;
- Object[] var2 = new Object[var1.size() * 2];
- Enumeration var3 = var1.keys();
-
- for(int var4 = 0; var3.hasMoreElements(); var4 += 2) {
- Object var5 = var3.nextElement();
- var2[var4] = var5;
- var2[var4 + 1] = var1.get(var5);
- }
-
- this.table = var2;
- }
-
- public int size() {
- if (this.table == null) {
- return 0;
- } else {
- int var1;
- if (this.isArray()) {
- var1 = ((Object[])this.table).length / 2;
- } else {
- var1 = ((Hashtable)this.table).size();
- }
-
- return var1;
- }
- }
- }
-